/*
 ***************************************************************************
 * MediaTeK Inc.
 * 4F, No. 2 Technology	5th	Rd.
 * Science-based Industrial	Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2012, MTK.
 *
 * All rights reserved.	MediaTeK's source	code is	an unpublished work	and	the
 * use of a	copyright notice does not imply	otherwise. This	source code
 * contains	confidential trade secret material of MediaTeK Tech. Any attemp
 * or participation	in deciphering,	decoding, reverse engineering or in	any
 * way altering	the	source code	is stricitly prohibited, unless	the	prior
 * written consent of MediaTeK, Inc. is obtained.
 ***************************************************************************

	Module Name:
	omci_me_general_purpose.h
	
	Abstract:

	Revision History:
	Who			When			What
	--------	----------		----------------------------------------------
	Name		Date			Modification logs
	kenny.weng		2012/7/16	Create
        Andy.Yi                 2012/7/27       add the 9.12.1-11 me node
        Andy.Yi                 2012/8/7        add the 9.12.12-14 me node
*/
#ifndef _GENERAL_PURPOSE_ME_H_
#define _GENERAL_PURPOSE_ME_H_

#include "omci_adpt_common.h"

#define ONLY_OMCI 			0
#define ONLY_NOOMCI			1
#define OMCI_AND_NOOMCI 	2

#define MAX_GERNEL_BUFFER_SIZE 		1024 *16
#define MAX_STRING_SIZE 			375

int setOLTVendorIdValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setOLTEquipmentIdValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setOLTVersionValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getTimeOfDayValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setTimeOfDayValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);

#ifdef TCSUPPORT_CUC
int getCucOnuCapOperatorID(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getCucOnuCapOnuType(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getCucOnuCapSpecVer(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getCucOnuCapOnuTxPowerCtrl(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
#endif

int setZTEFactoryRestoreDefault(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setHuaweiFactoryRestoreDefault(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getHuaweiMemOccup(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getHuaweiCpuOccup(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getHuaweiTemperature(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getHuaweiWanInfo(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int omci_me_large_str_set_op(management_entry_ptr me_entry, omci_me_info_ptr me_info);

int getStatusDocumentValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getConfugurationdocumentValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setAVCReportRateValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);

int omci_me_snmp_cfg_data_create_op(management_entry_ptr me_entry, omci_me_info_ptr me_info);
int omci_me_snmp_cfg_data_delete_op(management_entry_ptr me_entry, omci_me_info_ptr me_info);
int setSnmpReadCommunityValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setSnmpWriteCommunityValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setSnmpSysNameValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);

int setLargeStringValue(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int getTr069ManageAdmin(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setTr069ManageAdmin(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setTr069AcsAddr(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);
int setTr069AssociateTag(omci_me_info_ptr me_info, omci_attr_dscp_ptr omci_attr);


extern omci_attr_dscp_t omci_attr_uni_g_op[];
extern omci_me_func_t omci_me_uni_g_op;
extern omci_attr_t omci_uni_g_attr;

extern omci_attr_dscp_t omci_attr_olt_g_op[];
extern omci_me_func_t omci_me_olt_g_op;
extern omci_attr_t omci_olt_g_attr;

extern omci_attr_dscp_t omci_attr_network_addr_op[];
extern omci_me_func_t omci_me_network_addr_op;
extern omci_attr_t omci_network_addr_attr;

extern omci_attr_dscp_t omci_attr_auth_sec_method_op[];
extern omci_me_func_t omci_me_auth_sec_method_op;
extern omci_attr_t omci_auth_sec_method_attr;

extern omci_attr_dscp_t omci_attr_large_string_op[];
extern omci_me_func_t omci_me_large_string_op;
extern omci_attr_t omci_large_string_attr;

extern omci_attr_dscp_t omci_attr_thd_data1_op[];
extern omci_me_func_t omci_me_thd_data1_op;
extern omci_attr_t omci_thd_data1_attr;

extern omci_attr_dscp_t omci_attr_thd_data2_op[];
extern omci_me_func_t omci_me_thd_data2_op;
extern omci_attr_t omci_thd_data2_attr;

extern omci_attr_dscp_t omci_attr_thd_data_64bit_op[];
extern omci_me_func_t omci_me_thd_data_64bit_op;
extern omci_attr_t omci_thd_data_64bit_attr;


extern omci_attr_dscp_t omci_attr_omci_op[];
extern omci_me_func_t omci_me_omci_op;
extern omci_attr_t omci_omci_attr;

extern omci_attr_dscp_t omci_attr_managed_entity_op[];
extern omci_me_func_t omci_me_managed_entity_op;
extern omci_attr_t omci_managed_entity_attr;

extern omci_attr_dscp_t omci_attr_attribute_op[];
extern omci_me_func_t omci_me_attribute_op;
extern omci_attr_t omci_attribute_attr;

extern omci_attr_dscp_t omci_attr_octet_string_op[];
extern omci_me_func_t omci_me_octet_string_op;
extern omci_attr_t omci_octet_string_attr;

extern omci_attr_dscp_t omci_attr_general_purpose_buf_op[];
extern omci_me_func_t omci_me_general_purpose_buf_op;
extern omci_attr_t omci_general_purpose_buf_attr;

extern omci_attr_dscp_t omci_attr_file_transfer_ctrl_op[];
extern omci_me_func_t omci_me_file_transfer_ctrl_op;
extern omci_attr_t omci_file_transfer_ctrl_attr;

extern omci_attr_dscp_t omci_attr_pptp_video_uni_op[];
extern omci_me_func_t omci_me_pptp_video_uni_op;
extern omci_attr_t omci_pptp_video_uni_attr;

extern omci_attr_dscp_t omci_attr_pptp_video_ani_op[];
extern omci_me_func_t omci_me_pptp_video_ani_op;
extern omci_attr_t omci_pptp_video_ani_attr;

extern omci_attr_dscp_t omci_attr_generic_stat_portal_op[];
extern omci_me_func_t omci_me_generic_stat_portal_op;
extern omci_attr_t omci_generic_stat_portal_attr;

extern omci_attr_dscp_t omci_attr_snmp_cfg_data_op[];
extern omci_me_func_t omci_me_snmp_cfg_data_op;
extern omci_attr_t omci_snmp_cfg_data_attr;

extern omci_attr_dscp_t omci_attr_tr69_manage_srv_op[];
extern omci_me_func_t omci_me_tr69_manage_srv_op;
extern omci_attr_t omci_tr69_manage_srv_attr;

#ifdef TCSUPPORT_CUC
extern omci_attr_dscp_t omci_attr_cuc_onu_cap_op[];
extern omci_me_func_t omci_me_cuc_onu_cap_op;
extern omci_attr_t omci_cuc_onu_cap_attr;

extern omci_attr_dscp_t omci_attr_cuc_onu_trans_info_op[];
extern omci_me_func_t omci_me_cuc_onu_trans_info_op;
extern omci_attr_t omci_cuc_onu_trans_info_attr;
#endif

extern omci_attr_dscp_t omci_attr_247_op[];
extern omci_me_func_t omci_me_247_op;
extern omci_attr_t omci_me247_attr;

extern omci_attr_dscp_t omci_attr_65408_op[];
extern omci_me_func_t omci_me_65408_op;
extern omci_attr_t omci_me65408_attr;
extern omci_attr_dscp_t omci_attr_65415_op[];
extern omci_me_func_t omci_me_65415_op;
extern omci_attr_t omci_me65415_attr;
#endif
